import java.util.*;
public class FractionToDecimal {
    public static String fractionToDecimal(int numerator, int denominator) {

        if (numerator == 0) {
            return "0";
        }
        StringBuilder res = new StringBuilder();
        if ((numerator > 0 && denominator < 0) || (numerator < 0 && denominator > 0)) {
            res.append("-");
        }
        long num = Math.abs((long) numerator);
        long den = Math.abs((long) denominator);
        res.append(num / den);
        num %= den;
        if (num == 0) {
            return res.toString();
        }
        res.append(".");
        HashMap<Long, Integer> map = new HashMap<>();
        map.put(num, res.length());
        while (num != 0) {
            num *= 10;
            res.append(num / den);
            num %= den;
            if (map.containsKey(num)) {
                int index = map.get(num);
                res.insert(index, "(");
                res.append(")");
                break;
            }
            map.put(num, res.length());
        }
        return res.toString();
    }

    public static void main(String[] args) {
        int numerator = 4;
        int denominator = 333;
        String res = fractionToDecimal(numerator, denominator);
        System.out.println(res);
    }
    

}

// 给定两个整数，分别表示分数的分子 numerator 和分母 denominator，以 字符串形式返回小数 。

// 如果小数部分为循环小数，则将循环的部分括在括号内。

// 如果存在多个答案，只需返回 任意一个 。

// 对于所有给定的输入，保证 答案字符串的长度小于 104 。

 

// 示例 1：

// 输入：numerator = 1, denominator = 2
// 输出："0.5"
// 示例 2：

// 输入：numerator = 2, denominator = 1
// 输出："2"
// 示例 3：

// 输入：numerator = 4, denominator = 333
// 输出："0.(012)"